// 回调退出历史舞台
// 发现promise 异步同步化的缺点
function  f1() {
    return new Promise((resolve) => {
        console.log('f1');
        setTimeout(resolve, 2000)
    })
}
function  f2() {
    return new Promise((resolve) => {
        console.log('f2');
        setTimeout(resolve, 2000)
    })
}
function  f3() {
    return new Promise((resolve) => {
        console.log('f3');
        setTimeout(resolve, 2000)
    })
}
function  f4() {
    return new Promise((resolve) => {
        console.log('f4');
        setTimeout(resolve, 2000)
    })
}
function  f5() {
    return new Promise((resolve) => {
        console.log('f5');
        setTimeout(resolve, 2000)
    })
}
// 90年代末 浏览器简单的业务 js发现 -> es5(jquery) -> es6+(现代js react, babel) 
// promise -> es7  async await 
// async await   es7提供 
// 异步同步化方案  回调  地狱 
// promise  是es6提供的异步同步化方案   then()
// es7还要提供新的方案呢？ then有不完美的地方？ 
f1().then(()=>{
    return f2()
}).then(()=>{
    return f3()
}).then(()=>{
    f4()
})